0 CpxTRS
↳1 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxTypedWeightedTrs
↳5 CompletionProof (UPPER BOUND(ID), 0 ms)
↳6 CpxTypedWeightedCompleteTrs
↳7 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳10 CpxRNTS
↳11 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳12 CpxRNTS
↳13 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 IntTrsBoundProof (UPPER BOUND(ID), 5440 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 146 ms)
↳18 CpxRNTS
↳19 FinalProof (⇔, 0 ms)
↳20 BOUNDS(1, n^1)
dx(X) → one
dx(a) → zero
dx(plus(ALPHA, BETA)) → plus(dx(ALPHA), dx(BETA))
dx(times(ALPHA, BETA)) → plus(times(BETA, dx(ALPHA)), times(ALPHA, dx(BETA)))
dx(minus(ALPHA, BETA)) → minus(dx(ALPHA), dx(BETA))
dx(neg(ALPHA)) → neg(dx(ALPHA))
dx(div(ALPHA, BETA)) → minus(div(dx(ALPHA), BETA), times(ALPHA, div(dx(BETA), exp(BETA, two))))
dx(ln(ALPHA)) → div(dx(ALPHA), ALPHA)
dx(exp(ALPHA, BETA)) → plus(times(BETA, times(exp(ALPHA, minus(BETA, one)), dx(ALPHA))), times(exp(ALPHA, BETA), times(ln(ALPHA), dx(BETA))))
dx(X) → one [1]
dx(a) → zero [1]
dx(plus(ALPHA, BETA)) → plus(dx(ALPHA), dx(BETA)) [1]
dx(times(ALPHA, BETA)) → plus(times(BETA, dx(ALPHA)), times(ALPHA, dx(BETA))) [1]
dx(minus(ALPHA, BETA)) → minus(dx(ALPHA), dx(BETA)) [1]
dx(neg(ALPHA)) → neg(dx(ALPHA)) [1]
dx(div(ALPHA, BETA)) → minus(div(dx(ALPHA), BETA), times(ALPHA, div(dx(BETA), exp(BETA, two)))) [1]
dx(ln(ALPHA)) → div(dx(ALPHA), ALPHA) [1]
dx(exp(ALPHA, BETA)) → plus(times(BETA, times(exp(ALPHA, minus(BETA, one)), dx(ALPHA))), times(exp(ALPHA, BETA), times(ln(ALPHA), dx(BETA)))) [1]
dx(X) → one [1]
dx(a) → zero [1]
dx(plus(ALPHA, BETA)) → plus(dx(ALPHA), dx(BETA)) [1]
dx(times(ALPHA, BETA)) → plus(times(BETA, dx(ALPHA)), times(ALPHA, dx(BETA))) [1]
dx(minus(ALPHA, BETA)) → minus(dx(ALPHA), dx(BETA)) [1]
dx(neg(ALPHA)) → neg(dx(ALPHA)) [1]
dx(div(ALPHA, BETA)) → minus(div(dx(ALPHA), BETA), times(ALPHA, div(dx(BETA), exp(BETA, two)))) [1]
dx(ln(ALPHA)) → div(dx(ALPHA), ALPHA) [1]
dx(exp(ALPHA, BETA)) → plus(times(BETA, times(exp(ALPHA, minus(BETA, one)), dx(ALPHA))), times(exp(ALPHA, BETA), times(ln(ALPHA), dx(BETA)))) [1]
dx :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln one :: one:a:zero:plus:times:minus:neg:div:two:exp:ln a :: one:a:zero:plus:times:minus:neg:div:two:exp:ln zero :: one:a:zero:plus:times:minus:neg:div:two:exp:ln plus :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln times :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln minus :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln neg :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln div :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln exp :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln two :: one:a:zero:plus:times:minus:neg:div:two:exp:ln ln :: one:a:zero:plus:times:minus:neg:div:two:exp:ln → one:a:zero:plus:times:minus:neg:div:two:exp:ln |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
dx
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
one => 1
a => 0
zero => 3
two => 2
dx(z) -{ 1 }→ 3 :|: z = 0
dx(z) -{ 1 }→ 1 :|: X >= 0, z = X
dx(z) -{ 1 }→ 1 + dx(ALPHA) :|: ALPHA >= 0, z = 1 + ALPHA
dx(z) -{ 1 }→ 1 + dx(ALPHA) + ALPHA :|: ALPHA >= 0, z = 1 + ALPHA
dx(z) -{ 1 }→ 1 + dx(ALPHA) + dx(BETA) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + dx(ALPHA)) + (1 + ALPHA + dx(BETA)) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + (1 + (1 + ALPHA + (1 + BETA + 1)) + dx(ALPHA))) + (1 + (1 + ALPHA + BETA) + (1 + (1 + ALPHA) + dx(BETA))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + dx(ALPHA) + BETA) + (1 + ALPHA + (1 + dx(BETA) + (1 + BETA + 2))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 3 :|: z = 0
dx(z) -{ 1 }→ 1 :|: z >= 0
dx(z) -{ 1 }→ 1 + dx(z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + dx(ALPHA) + dx(BETA) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + dx(z - 1) + (z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + (1 + BETA + dx(ALPHA)) + (1 + ALPHA + dx(BETA)) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + (1 + (1 + ALPHA + (1 + BETA + 1)) + dx(ALPHA))) + (1 + (1 + ALPHA + BETA) + (1 + (1 + ALPHA) + dx(BETA))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + dx(ALPHA) + BETA) + (1 + ALPHA + (1 + dx(BETA) + (1 + BETA + 2))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
{ dx } |
dx(z) -{ 1 }→ 3 :|: z = 0
dx(z) -{ 1 }→ 1 :|: z >= 0
dx(z) -{ 1 }→ 1 + dx(z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + dx(ALPHA) + dx(BETA) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + dx(z - 1) + (z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + (1 + BETA + dx(ALPHA)) + (1 + ALPHA + dx(BETA)) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + (1 + (1 + ALPHA + (1 + BETA + 1)) + dx(ALPHA))) + (1 + (1 + ALPHA + BETA) + (1 + (1 + ALPHA) + dx(BETA))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + dx(ALPHA) + BETA) + (1 + ALPHA + (1 + dx(BETA) + (1 + BETA + 2))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 3 :|: z = 0
dx(z) -{ 1 }→ 1 :|: z >= 0
dx(z) -{ 1 }→ 1 + dx(z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + dx(ALPHA) + dx(BETA) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + dx(z - 1) + (z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + (1 + BETA + dx(ALPHA)) + (1 + ALPHA + dx(BETA)) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + (1 + (1 + ALPHA + (1 + BETA + 1)) + dx(ALPHA))) + (1 + (1 + ALPHA + BETA) + (1 + (1 + ALPHA) + dx(BETA))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + dx(ALPHA) + BETA) + (1 + ALPHA + (1 + dx(BETA) + (1 + BETA + 2))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx: runtime: ?, size: O(n2) [3 + 10·z + 3·z2] |
dx(z) -{ 1 }→ 3 :|: z = 0
dx(z) -{ 1 }→ 1 :|: z >= 0
dx(z) -{ 1 }→ 1 + dx(z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + dx(ALPHA) + dx(BETA) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + dx(z - 1) + (z - 1) :|: z - 1 >= 0
dx(z) -{ 1 }→ 1 + (1 + BETA + dx(ALPHA)) + (1 + ALPHA + dx(BETA)) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + BETA + (1 + (1 + ALPHA + (1 + BETA + 1)) + dx(ALPHA))) + (1 + (1 + ALPHA + BETA) + (1 + (1 + ALPHA) + dx(BETA))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx(z) -{ 1 }→ 1 + (1 + dx(ALPHA) + BETA) + (1 + ALPHA + (1 + dx(BETA) + (1 + BETA + 2))) :|: ALPHA >= 0, BETA >= 0, z = 1 + ALPHA + BETA
dx: runtime: O(n1) [1 + 2·z], size: O(n2) [3 + 10·z + 3·z2] |